************************************ Output File Format Specification ************************************ The DS-PAW 2023A version's default output files in **JSON** format can be directly analyzed and processed using Device Studio. Additionally, the output files now support the **hdf5** format. You can download `vitables`_ (run `pip install vitables` in a Python environment) or `HDFView`_ to view the **hdf5** format files, and utilize the **python** scripts provided in :doc:`/tools` for result analysis. Except for the charge density file :guilabel:`rho.h5` and the solvent-bound charge density output file :guilabel:`rhoBound.h5`, the filenames of other output files depend on the **task** type. Currently, DS-PAW supports 14 task types, and the corresponding h5 filenames are: :guilabel:`relax.h5`, :guilabel:`scf.h5`, :guilabel:`band.h5`, :guilabel:`dos.h5`, :guilabel:`potential.h5`, :guilabel:`elf.h5`, :guilabel:`pcharge.h5`, :guilabel:`frequency.h5`, :guilabel:`elastic.h5`, :guilabel:`neb.h5`, :guilabel:`phonon.h5`, :guilabel:`aimd.h5`, :guilabel:`epsilon.h5`, and :guilabel:`wannier.h5`. DS-PAW 2023A currently supports output files in **.json** format, but users are not advised to continue using this format for analysis. DS-PAW will completely remove the json format output during iterative versions, ceasing maintenance and updates for this format. Users can control whether to output json files via the ``io.outJsonFile`` parameter. .. _vitables: https://vitables.org/Download/ .. _HDFView: https://portal.hdfgroup.org/display/support/Download+HDFView ============================================================================== relax.h5 ============================================================================== relax.h5 is the output file when task = relax; this file is not output when the task type is something else. The :guilabel:`relax.h5` file contains at least 9 basic structures: .. figure:: ../assets/phase4/relax0.png (1) :guilabel:`AtomInfo` saves the basic structural information of the system, such as cell size, atomic positions, etc.; .. figure:: ../assets/phase4/relax1.png (2) :guilabel:`Eigenvalue` stores the number of bands calculated, spin information, the number of k-points and their coordinates, the orbital occupation numbers and energy eigenvalues of each band at each k-point; .. figure:: ../assets/phase4/relax2.png (3) :guilabel:`Electron` saves the total number of valence electrons in the system; (4) :guilabel:`Energy` stores the total energy and Fermi energy; .. figure:: ../assets/phase4/relax3.png (5) The force on each atom during the relaxation process is saved in :guilabel:`Force`; .. figure:: ../assets/phase4/relax4.png (6) :guilabel:`MagInfo` stores the total magnetic moment information of atoms; if projections are enabled, it stores the projected magnetic moment information. .. figure:: ../assets/phase4/relax5.png (7) The :guilabel:`RelaxInfo` saves the stress and pressure data of the system at each step during structural relaxation; .. figure:: ../assets/phase4/relax8.png (8) :guilabel:`Stress` stores the stress magnitude in each direction of the unit cell, and the system pressure. .. figure:: ../assets/phase4/relax6.png (9) Structures stores structure and magnetic moment data during relaxation; .. figure:: ../assets/phase4/relax7.png ============================================================================== scf.h5 ============================================================================== scf.h5 is the output file when task = scf; this file is not output for other task types. The :guilabel:`scf.h5` file contains at least 8 fundamental structures, with basic information consistent with :guilabel:`relax.h5`: .. figure:: ../assets/phase4/scf0.png *Under *task = scf*, calculations for various functionalities can be controlled through parameters such as ``sys`` and ``io``. The generated :guilabel:`scf.h5` file will store data corresponding to these functionalities. Specifically, the calculations can be categorized as follows: (1) By setting ``io.optical = true``, linear optical properties are calculated based on the self-consistent field (SCF) calculation: .. figure:: ../assets/phase4/iooptical0.png .. figure:: ../assets/phase4/iooptical1.png .. figure:: ../assets/phase4/optical4.png (2) Calculate Bader charge based on the self-consistent calculation by setting ``io.bader = true``: .. figure:: ../assets/phase4/iobader0.png .. figure:: ../assets/phase4/iobader1.png (3) Perform ferroelectric calculations based on the self-consistent calculation by setting ``io.polarization = true``: .. figure:: ../assets/phase4/iopolarization0.png .. figure:: ../assets/phase4/iopolarization1.png (4) Perform fixed potential calculations in the self-consistent calculation by setting ``sys.fixedP = true``: .. figure:: ../assets/phase4/fixP0.png where :guilabel:`ChemicalPotential_e` is the electronic chemical potential of the system; :guilabel:`EBulk` is the negative value of the Fermi level shift under the implicit solvent model; :guilabel:`ElectrodePotential` gives the potential value under different calibration standards; and :guilabel:`GrandTotalEnergy0` gives the total energy of the system under the grand canonical ensemble of electrons. .. figure:: ../assets/phase4/fixP1.png Expand under the :guilabel:`fixedPPotential` tag to summarize information on key parameters during the electronic iteration. (5) By setting ``io.band = true``, ``io.dos = true``, ``io.potential = true``, and ``io.elf = true``, Perform band structure calculation, density of states calculation, potential function calculation, and electron localization density calculation based on the self-consistent calculation: .. figure:: ../assets/phase4/ioband.png .. figure:: ../assets/phase4/iodos.png .. figure:: ../assets/phase4/iopotential.png .. figure:: ../assets/phase4/ioelf.png ============================================================================== rho.h5 ============================================================================== rho.h5 is the charge density output file for each task. :guilabel:`rho.h5` contains two structures: .. figure:: ../assets/phase4/rho0.png Where :guilabel:`AtomInfo` is consistent with the :guilabel:`AtomInfo` structure in the :guilabel:`relax.h5` file, and :guilabel:`Rho` stores the charge density data: .. figure:: ../assets/phase4/rho1.png ============================================================================== rhoBound.h5 ============================================================================== rhoBound.h5 is the output file for the solvent-bound charge density in the solvation model. :guilabel:`rhoBound.h5` contains two structures: .. figure:: ../assets/phase4/rhoBound.png Where :guilabel:`AtomInfo` is largely consistent with the :guilabel:`AtomInfo` structure in the :guilabel:`relax.h5` file, and :guilabel:`Rho` stores the solvent-bound charge density data: ============================================================================== band.h5 ============================================================================== band.h5 is the output file for each task = band. This file is not output when the task type is different. :guilabel:`band.h5` contains at least 3 structures: .. figure:: ../assets/phase4/band.png The structures of :guilabel:`AtomInfo`, :guilabel:`Structures`, and the :guilabel:`relax.h5` file are consistent. :guilabel:`BandInfo` stores the band structure data: .. figure:: ../assets/phase4/band1.png | The band folding calculation corresponding to :guilabel:`band.h5` should contain at least 4 structures: .. figure:: ../assets/phase4/band2.png The structure of the structs corresponding to :guilabel:`AtomInfo`, :guilabel:`Structures`, and the :guilabel:`relax.h5` file are consistent. :guilabel:`BandInfo` stores band data, and :guilabel:`UnfoldingBandInfo` stores band unfolding data. .. figure:: ../assets/phase4/band3.png ============================================================================== dos.h5 ============================================================================== dos.h5 is the output file for task = dos; this file is not output when the task type is different. :guilabel:`dos.h5` contains at least 3 structures: .. figure:: ../assets/phase4/dos0.png Among them, the structure of the structures corresponding to :guilabel:`AtomInfo`, :guilabel:`Structures`, and the file :guilabel:`relax.h5` are consistent, and :guilabel:`DosInfo` stores the density of states data: .. figure:: ../assets/phase4/dos1.png ============================================================================== potential.h5 ============================================================================== `potential.h5` is an output file under `task = potential`. This file is not generated for other task types. The :guilabel:`potential.h5` file contains at least 3 structures: .. figure:: ../assets/phase4/potential0.png Where :guilabel:`Potential` stores the potential function data: .. figure:: ../assets/phase4/potential1.png ============================================================================== elf.h5 ============================================================================== elf.h5 is the output file for task = elf. When the task type is different, this file is not output. :guilabel:`elf.h5` contains at least 3 structures: .. figure:: ../assets/phase4/elf0.png Where :guilabel:`elf` stores the local density data: .. figure:: ../assets/phase4/elf1.png ============================================================================== pcharge.h5 ============================================================================== pcharge.h5 is the output file under task = pcharge; this file is not output when the task type is different. The :guilabel:`pcharge.h5` file contains two structures: .. figure:: ../assets/phase4/pcharge0.png Here, :guilabel:`Pcharge` stores partial charge density data: .. figure:: ../assets/phase4/pcharge1.png ============================================================================== optical.h5 ============================================================================== optical.h5 is the output file for task = optical; this file is not generated for other task types. `optical.h5` contains four structures: .. figure:: ../assets/phase4/optical0.png (1) Basic structural information of the system, such as unit cell size and atomic positions, is stored in :guilabel:`AtomInfo`: .. figure:: ../assets/phase4/optical1.png (2) The `opticalInfo` variable stores data on various properties from optical calculations: .. figure:: ../assets/phase4/optical2.png (3) The optical calculation structure information is saved in :guilabel:`Structures`: .. figure:: ../assets/phase4/optical3.png (4) :guilabel:`WaveDerivate` stores the derivative array of wave functions with respect to k-points, with a size of: (real part, imaginary part) * NumberOfBands (after selection) * NumberOfKPoints * NumberOfSpin * (x, y, z); :guilabel:`DerivativeIndex` gives the dimension of the derivative array; :guilabel:`DerivativeValue` gives the value of the derivative array. .. figure:: ../assets/phase4/optical4.png ============================================================================== frequency.h5 ============================================================================== `frequency.h5` is the output file for `task = frequency`; this file is not generated for other task types. With spin considered, :guilabel:`frequency.h5` contains four structures: .. figure:: ../assets/phase4/frequency0.png Where frequency data is stored in :guilabel:`FrequencyInfo`: .. figure:: ../assets/phase4/frequency1.png ============================================================================== elastic.h5 ============================================================================== `elastic.h5` is the output file for `task = elastic`. This file is not output when the `task` type is other than `elastic`. With spin considered, `elastic.h5` contains four structures: .. figure:: ../assets/phase4/elastic0.png Elastic data is stored in :guilabel:`ElasticInfo`: .. figure:: ../assets/phase4/elastic1.png ============================================================================== neb.h5 ============================================================================== `neb.h5` is the output file in the top-level directory when `task = neb`. :guilabel:`neb.h5` contains five structures: .. figure:: ../assets/phase4/neb0.png The :guilabel:`BarrierInfo` stores the maximum force, reaction coordinate (reaction distance between each image and the initial 00 structure), maximum shear force, and total energy data: .. figure:: ../assets/phase4/neb01.png Where the switch for saving the initial and final states of the calculation is stored in :guilabel:`IniFin`: .. figure:: ../assets/phase4/neb02.png The :guilabel:`LoopInfo` object stores the energy and force changes for each image during the neb optimization process: .. figure:: ../assets/phase4/neb03.png In which :guilabel:`RelaxedStructure` stores the structure data after optimization of each image: .. figure:: ../assets/phase4/neb04.png Where :guilabel:`UnrelaxStructure` stores the structural data before optimization of each image: .. figure:: ../assets/phase4/neb05.png ============================================================================== neb01.h5 ============================================================================== neb01.h5 is the output file in the 01 subdirectory when task = neb. Similarly, the neb02.h5 file will be generated in the 02 subdirectory. In the spin-unpolarized case, :guilabel:`neb01.h5` contains 12 structures: .. figure:: ../assets/phase4/neb00.png Among them, the structures of :guilabel:`AtomInfo`, :guilabel:`Eigenvalue`, :guilabel:`Electron`, :guilabel:`Energy`, :guilabel:`Force`, :guilabel:`Stress`, and :guilabel:`Structures` are consistent with the corresponding structure in the :guilabel:`relax.h5` file; In the :guilabel:`Distance` data, the distance change of the reaction atom between the initial and final images during the optimization process is stored. .. figure:: ../assets/phase4/neb001.png where :guilabel:`MaxForce` stores the maximum force data for image 1 during optimization; Where :guilabel:`NebSize` stores the maximum number of steps in the transition state calculation. where :guilabel:`Tangent` stores the data of the change in the tangent force of image 1 during the optimization process; where :guilabel:`TotalEnergy` stores the total energy change data of image 1 during the optimization process; ============================================================================== phonon.h5 ============================================================================== phonon.h5 is the output file under task = phonon. This file is not output when the task type is different. (1) When ``phonon.method = dfpt``, the phonon.f5 file is as follows: When the dfpt method is used to calculate phonon band structure and density of states, it enables the calculation of dielectric constants and phonon thermodynamics. The :guilabel:`phonon.h5` file contains 9 structures: .. figure:: ../assets/phase4/phonon-dfpt0.png Where :guilabel:`BandInfo` and :guilabel:`DosInfo` respectively store the band structure and density of states data, their structures are consistent with the corresponding structures in :guilabel:`band.h5` and :guilabel:`dos.h5` files; Where :guilabel:`EpsilonInfo` stores the dielectric function data: .. figure:: ../assets/phase4/epsilon1.png where the mechanical constant data is stored in :guilabel:`ForceConstant`: .. figure:: ../assets/phase4/phonon-dfpt2.png Where :guilabel:`PrimitiveAtomInfo`, :guilabel:`SupercellAtomInfo`, and :guilabel:`unitAtomInfo` store the structural information for the primitive cell, supercell, and unit cell, respectively. Taking the unit cell as an example, the structure is as follows: .. figure:: ../assets/phase4/phonon-dfpt3.png In which :guilabel:`ThermalInfo` stores phonon thermodynamic data: .. figure:: ../assets/phase4/phonon-dfpt4.png Here, :guilabel:`Phonon` stores the input parameters data for phonon calculations: .. figure:: ../assets/phase4/phonon-dfpt5.png (2) When ``phonon.method = fd``, the phonon.f5 file is shown as follows: For phonon band structure and density of states calculations using the finite displacement method, :guilabel:`phonon.h5` contains 9 structures: .. figure:: ../assets/phase4/phonon-fd0.png Where :guilabel:`BandInfo` and :guilabel:`DosInfo` store band structure and density of states data, respectively, whose structures correspond to the structures in the files :guilabel:`band.h5` and :guilabel:`dos.h5`, respectively. where :guilabel:`ForceConstant` stores the force constant data, and :guilabel:`PrimitiveAtomInfo`, :guilabel:`SupercellAtomInfo`, and :guilabel:`unitAtomInfo` respectively saving the structural information of the primitive cell, supercell, and unit cell, whose structures are consistent with the structures in the ``phonon.f5`` file generated when ``phonon.method = dfpt``; Where :guilabel:`ForceSet` stores the mechanical matrix data calculated for each structure: .. figure:: ../assets/phase4/phonon-fd1.png Here, the phonon calculation input parameter data is stored in :guilabel:`Phonon`: .. figure:: ../assets/phase4/phonon-fd2.png ============================================================================== phonon001.h5 ============================================================================== task = phonon, when phonon.method = fd, the file phonon.h5 will be output under the 001 subfolder. This type of h5 file can be renamed to phonon001.h5. Similarly, the phonon.h5 file will also be generated under the 002 folder. In the case of spin consideration, :guilabel:`phonon001.h5` contains 7 structures, as follows: .. figure:: ../assets/phase4/phonon001.png ============================================================================== aimd.h5 ============================================================================== aimd.h5 is the output file for task = aimd; it is not output when the task type is different. When considering spin, :guilabel:`aimd.h5` contains 9 structures: .. figure:: ../assets/phase4/aimd0.png The underlying structure information is consistent with :guilabel:`relax.h5`; The new structure :guilabel:`AimdInfo` contains n structures, each storing the state information of the system under a certain ion step, such as temperature, pressure, energy, and kinetic energy: .. figure:: ../assets/phase4/aimd1.png ============================================================================== epsilon.h5 ============================================================================== `epsilon.h5` is the output file for `task = epsilon`. This file is not produced for other task types Considering spin, :guilabel:`epsilon.h5` contains four structures: .. figure:: ../assets/phase4/epsilon0.png In which the dielectric constant data is stored in :guilabel:`EpsilonInfo`: .. figure:: ../assets/phase4/epsilon1.png ============================================================================== wannier.h5 ============================================================================== wannier.h5 is the output file under task = wannier; this file is not output when the task type is other than wannier. Without considering spin, the interpolated bands calculated by :guilabel:`wannier.h5` contain 9 structures: .. figure:: ../assets/phase4/wannier0.png In this, :guilabel:`WannBandInfo` stores the interpolated band data, which can be used to plot band diagrams: .. figure:: ../assets/phase4/wannier1.png Within this, :guilabel:`WannInfo` stores the Wannier function fitting data, including k-grid points and initial projection information, etc.: .. figure:: ../assets/phase4/wannier2.png In which, the :guilabel:`spin1` under :guilabel:`WannInfo` stores the fitting data of Wannier functions, including the calculated Hamiltonian and other data: .. figure:: ../assets/phase4/wannier3.png